﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using main.sdk.display.object2d;
using main.sdk.utils;
using Microsoft.Xna.Framework;

namespace main.sdk.utils.animations2D
{
    /**
     * Cria uma animação de espera.
     * 
     * @usage
     *   // Espera certo tempo.
     *   Animation2D anim = new WaitAnimation2D(Time)
     */
    public class WaitAnimation2D : Animation2D
    {
        #region Variables

        private Counter m_Counter = new Counter();
        private double m_Time = 0; 

        #endregion

        #region Constructors

        /**
         * Cria uma animação de espera.
         * 
         * @param Time - Tempo para esperar
         */
        public WaitAnimation2D(double Time)
        {
            m_Time = Time;
        } 

        #endregion

        #region Overriden Methods

        /**
         * Verifica se a animação está ativa.
         */
        protected override bool IsActive()
        {
            return (m_Counter.Active());
        }

        /**
         * Inicializa a animação
         * 
         * @param obj - O Objeto da animação.
         */
        public override void Setup(Object2D obj)
        {
            m_Counter.Reset(0, 0, m_Time);
        }

        /**
         * Atualiza a animação.
         * 
         * @param Time - Tempo que passou.
         */
        public override void Update(double Time)
        {
            m_Counter.Update(Time);
        }

        #endregion
    }
}
